package com.jzo2o.market.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jzo2o.api.market.dto.response.AvailableCouponsResDTO;
import com.jzo2o.market.model.domain.Coupon;
import com.jzo2o.market.model.dto.request.CouponOperationPageQueryReqDTO;
import com.jzo2o.market.model.dto.response.CouponQueryForPageResDTO;

import java.math.BigDecimal;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author itcast
 * @since 2023-09-16
 */
public interface ICouponService extends IService<Coupon> {

    /**
     * 分页查询优惠卷
     * @return
     */
    CouponQueryForPageResDTO queryPage(CouponOperationPageQueryReqDTO dto);


    /**
     * 查询优惠卷列表
     * @param status
     * @param lastId
     * @return
     */
    List<Coupon> queryCouponList(Integer status, Long lastId);

    /**
     * 领取优惠卷
     * @param id
     */
    void seizeCoupon(Long id);

    /**
     * 查询可用优惠卷
     * @param totalAmount
     * @return
     */
    List<AvailableCouponsResDTO> getAvailable(BigDecimal totalAmount);
}
